Magento Module Development

Web Development - ম্যাজেন্টো ফ্রেমওয়ার্ক (Magento Framework)
112
112

ম্যাজেন্টো ফ্রেমওয়ার্ক (Magento Framework) এর মডিউল ডেভেলপমেন্ট একটি গুরুত্বপূর্ণ দিক, যা ব্যবহারকারীদের ই-কমার্স সাইটে নতুন কার্যকারিতা যোগ করার সুযোগ প্রদান করে। Magento মডিউল হলো একটি স্বাধীন ইউনিট যা একটি নির্দিষ্ট কাজ বা ফিচার সম্পাদন করে। এটি এক বা একাধিক ফাইলের মাধ্যমে কাজ করে এবং আপনি বিভিন্ন ধরনের ফিচার এবং কাজের জন্য মডিউল তৈরি করতে পারেন, যেমন পেমেন্ট গেটওয়ে, শিপিং মেথড, কাস্টম পণ্য ফিল্ড, অথবা নতুন API ইন্টিগ্রেশন।

এখানে, আমরা Magento মডিউল ডেভেলপমেন্টের প্রক্রিয়া এবং এর উপাদানগুলো নিয়ে বিস্তারিত আলোচনা করব।


Magento মডিউল ডেভেলপমেন্টের ধারণা

Magento মডিউল হলো একটি প্যাকেজ যা নির্দিষ্ট ফিচার এবং কার্যকারিতা সরবরাহ করে। মডিউল ডেভেলপমেন্টের মাধ্যমে আপনি আপনার ই-কমার্স সাইটে নতুন সিস্টেম কার্যকারিতা যুক্ত করতে পারেন, যা Magento এর মূল কোর ফাংশনালিটি এক্সটেন্ড বা কাস্টমাইজ করে।

Magento 2.x এর মডিউল ডেভেলপমেন্ট সাধারণত PHP, XML, এবং PHTML ফাইলের সমন্বয়ে কাজ করে।


Magento মডিউল ডেভেলপমেন্টের জন্য পদক্ষেপ

১. মডিউল ডিরেক্টরি তৈরি

Magento মডিউল তৈরি করার প্রথম পদক্ষেপ হল একটি নির্দিষ্ট ডিরেক্টরি তৈরি করা। সাধারণত মডিউলটি app/code/[Vendor]/[ModuleName] ডিরেক্টরিতে তৈরি হয়।

app/code
├── [Vendor]
│   └── [ModuleName]
│       ├── Controller/
│       ├── etc/
│       ├── Model/
│       ├── view/
│       └── registration.php
  • Controller/: মডিউলের কন্ট্রোলার ফাইলগুলি।
  • etc/: কনফিগারেশন ফাইল যেমন XML।
  • Model/: মডেল ক্লাস, যা ডাটাবেস বা কার্যকারিতার সাথে সম্পর্কিত।
  • view/: থিমের জন্য ফাইল যেমন পেজ লেআউট, টেমপ্লেট ইত্যাদি।
  • registration.php: মডিউল রেজিস্ট্রেশন ফাইল।

২. registration.php ফাইল তৈরি করা

Magento 2.x এ মডিউল রেজিস্ট্রেশন করার জন্য একটি registration.php ফাইল তৈরি করতে হয়, যা Magento কে জানান দেয় যে আপনার মডিউল রয়েছে।

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Vendor_ModuleName',
    __DIR__
);

এখানে Vendor_ModuleName এর মাধ্যমে আপনার মডিউলের নাম উল্লেখ করতে হবে।

৩. module.xml ফাইল তৈরি করা

এখন আপনাকে মডিউলের কনফিগারেশন ফাইল module.xml তৈরি করতে হবে, যা Magento কে মডিউলের তথ্য দেয়।

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="Vendor_ModuleName" setup_version="1.0.0"/>
</config>
  • name: মডিউলের নাম।
  • setup_version: মডিউল সংস্করণ।

৪. কন্ট্রোলার তৈরি করা

Magento মডিউলে কন্ট্রোলার একটি গুরুত্বপূর্ণ উপাদান, যা HTTP রিকোয়েস্ট প্রক্রিয়াজাত করে এবং রেসপন্স পাঠায়। আপনি কন্ট্রোলার তৈরি করতে পারেন, যা ইউজার ইন্টারফেসের সাথে যোগাযোগ করে।

এখানে একটি কন্ট্রোলার ক্লাসের উদাহরণ দেওয়া হল:

<?php
namespace Vendor\ModuleName\Controller\Index;

use Magento\Framework\App\Action\Action;
use Magento\Framework\App\Action\Context;

class Index extends Action
{
    public function execute()
    {
        // কোডের লজিক এখানে থাকবে
        echo "Hello, Magento Module!";
    }
}

এই কন্ট্রোলারটি Vendor/ModuleName মডিউলের অংশ হবে, এবং URL এর মাধ্যমে আপনি এটি অ্যাক্সেস করতে পারবেন।

৫. মডেল তৈরি করা

Magento মডেলে ডাটাবেসের সাথে সম্পর্কিত সমস্ত কার্যক্রম পরিচালনা করা হয়। একটি মডেল ক্লাস তৈরি করুন যা ডাটাবেসের রেকর্ডকে পরিচালনা করবে। উদাহরণস্বরূপ:

<?php
namespace Vendor\ModuleName\Model;

use Magento\Framework\Model\AbstractModel;

class Example extends AbstractModel
{
    protected $_idFieldName = 'id';  // Primary key
    protected $_idFieldName = 'example_table';  // Table Name
}

৬. পেজ লেআউট এবং টেমপ্লেট ফাইল তৈরি করা

Magento মডিউল ডেভেলপমেন্টে, আপনি HTML এবং PHP কোডের মিশ্রণ ব্যবহার করে টেমপ্লেট ফাইল তৈরি করবেন। view/frontend/templates ডিরেক্টরিতে .phtml ফাইল তৈরি করতে পারেন।

<!-- app/code/Vendor/ModuleName/view/frontend/templates/example.phtml -->
<h1>Hello, this is your custom Magento Module!</h1>

এটি কন্ট্রোলার ক্লাসের মাধ্যমে লোড করা হবে এবং গ্রাহককে প্রদর্শিত হবে।

৭. মডিউল অ্যাক্টিভেশন

মডিউল তৈরি এবং কনফিগার করার পরে, আপনাকে Magento-তে মডিউলটি সক্রিয় করতে হবে। এটি করার জন্য, টার্মিনালে নিচের কমান্ডটি ব্যবহার করুন:

bin/magento module:enable Vendor_ModuleName
bin/magento setup:upgrade

৮. মডিউল ডিসপ্লে

মডিউল সফলভাবে সক্রিয় হলে, আপনি আপনার মডিউলকে URL এর মাধ্যমে দেখতে পারবেন:

http://your-magento-site.com/vendor_modulename/index/index

এটি আপনার কন্ট্রোলার Index অ্যাকশনটিকে ট্রিগার করবে।


Magento মডিউল ডেভেলপমেন্টের সুবিধা

  1. ফিচার এক্সটেনশন: মডিউল ডেভেলপমেন্টের মাধ্যমে আপনি Magento এর ফিচার এক্সটেন্ড করতে পারেন এবং নতুন ফিচার যুক্ত করতে পারেন।
  2. কাস্টমাইজেশন: মডিউল ডেভেলপমেন্ট আপনাকে Magento এর নীতিমালা অনুসরণ করে কাস্টমাইজেশনের সুযোগ দেয়।
  3. মডুলার আর্কিটেকচার: Magento এর মডুলার আর্কিটেকচার আপনাকে ছোট, স্বাধীন ইউনিট তৈরি করার সুযোগ দেয়, যা পরবর্তীতে সহজেই রক্ষণাবেক্ষণ এবং আপডেট করা যায়।
  4. কোড পুনঃব্যবহারযোগ্যতা: একটি মডিউল তৈরি হলে আপনি তা অন্য প্রকল্পেও ব্যবহার করতে পারেন।

সারাংশ

Magento মডিউল ডেভেলপমেন্ট একটি শক্তিশালী প্রক্রিয়া, যা আপনাকে ই-কমার্স সাইটে নতুন কার্যকারিতা যোগ করার সুযোগ দেয়। Magento মডিউল তৈরি করার মাধ্যমে আপনি নির্দিষ্ট কার্যকরী ফিচার তৈরি করতে পারেন, যেমন পেমেন্ট গেটওয়ে, কাস্টম ফর্ম, কাস্টম রিপোর্টিং টুলস, ইত্যাদি। এই প্রক্রিয়াটি সহজ এবং স্ট্রাকচারাল, যা ব্যবসায়ীদের তাদের সাইটে নতুন ফিচার এবং কাস্টম কার্যক্রম ইনক্লুড করার সুযোগ প্রদান করে।

Content added By

Magento এর মডিউল আর্কিটেকচার এবং Component

94
94

ম্যাজেন্টো ফ্রেমওয়ার্ক (Magento Framework) একটি শক্তিশালী মডুলার আর্কিটেকচার অনুসরণ করে, যা ব্যবসায়ীদের জন্য অত্যন্ত কাস্টমাইজেবল এবং স্কেলেবল সলিউশন প্রদান করে। ম্যাজেন্টো তার মডিউল আর্কিটেকচারের মাধ্যমে বিভিন্ন ফিচার এবং কার্যকারিতা একে অপরের সাথে যুক্ত করার জন্য একটি পরিষ্কার এবং সংগঠিত কাঠামো প্রদান করে। এটি বিভিন্ন কম্পোনেন্টের মাধ্যমে কাজ করে, যেখানে প্রতিটি কম্পোনেন্ট একটি নির্দিষ্ট কাজ সম্পাদন করে। এর মাধ্যমে, Magento একটি অত্যন্ত ফ্লেক্সিবল এবং মডুলার প্ল্যাটফর্ম হিসেবে কাজ করে।


Magento এর মডিউল আর্কিটেকচার

Magento ফ্রেমওয়ার্কে মডিউল হল একটি স্বতন্ত্র ইউনিট যা সিস্টেমের একটি নির্দিষ্ট ফিচার বা কার্যকারিতা প্রদান করে। এটি সিস্টেমের কার্যকলাপ বা এক্সটেনশন যুক্ত করতে সাহায্য করে। Magento এর মডিউল আর্কিটেকচারের মূল বৈশিষ্ট্য হলো:

১. মডিউল (Module)

Magento এর মডিউল আর্কিটেকচার সিস্টেমের কার্যকলাপকে ছোট ইউনিটে বিভক্ত করে। প্রতিটি মডিউল একটি নির্দিষ্ট কার্যকারিতা প্রদান করে, যেমন পণ্য ব্যবস্থাপনা, অর্ডার ট্র্যাকিং, গ্রাহক ম্যানেজমেন্ট ইত্যাদি। Magento এ নতুন ফিচার যোগ করতে বা বিদ্যমান ফিচার পরিবর্তন করতে নতুন মডিউল তৈরি করা হয়।

  • মডিউল নাম: প্রতিটি মডিউলের একটি নাম থাকে যা তার কার্যকারিতা বা উদ্দেশ্য নির্দেশ করে।
  • মডিউল স্ট্রাকচার: প্রতিটি মডিউল সাধারণত একটি নির্দিষ্ট ফোল্ডার কাঠামোর মধ্যে থাকে, যার মধ্যে কোড, কনফিগারেশন, লেআউট, টেমপ্লেট এবং অন্যান্য উপাদান থাকে।

২. মডিউল ডিরেক্টরি (Module Directory)

Magento সিস্টেমে প্রতিটি মডিউলের জন্য একটি নির্দিষ্ট ডিরেক্টরি থাকে, যা সাধারণত app/code/<Vendor>/<ModuleName> ফোল্ডারে অবস্থান করে। এখানে:

  • Vendor: এটি সাধারণত কোম্পানির নাম বা ডেভেলপার নাম।
  • ModuleName: এটি মডিউলের নাম যা তার কার্যকারিতা নির্দেশ করে।

৩. মডিউল কনফিগারেশন (Module Configuration)

Magento মডিউল কনফিগারেশন ফাইলগুলির মাধ্যমে পরিচালিত হয়, যা XML ফরম্যাটে থাকে। এই কনফিগারেশন ফাইলগুলো মডিউলের জন্য প্রয়োজনীয় সেটিংস এবং অপশন নির্ধারণ করে। প্রধান কনফিগারেশন ফাইলগুলির মধ্যে রয়েছে:

  • module.xml: এটি মডিউলের মৌলিক তথ্য যেমন মডিউল নাম, তার অবস্থান এবং অন্যান্য বিবরণ ধারণ করে।
  • config.xml: এটি মডিউলের সেটিংস এবং কনফিগারেশন ধারণ করে, যা Magento সিস্টেমের বিভিন্ন অংশের সাথে মডিউল ইন্টিগ্রেট করার জন্য ব্যবহৃত হয়।

Magento এর কম্পোনেন্ট আর্কিটেকচার

Magento এর কম্পোনেন্ট আর্কিটেকচার একটি কাস্টমাইজেবল এবং শক্তিশালী পদ্ধতি, যা একাধিক কম্পোনেন্টের মধ্যে কাজ করে। এটি ডিপেন্ডেন্সি ইনজেকশন এবং হালকা-ওজন কম্পোনেন্ট ব্যবহার করে একটি মডুলার আর্কিটেকচার তৈরি করে। এখানে কয়েকটি প্রধান কম্পোনেন্টের কথা বলা হলো:

১. Controller (কন্ট্রোলার)

Magento এর কন্ট্রোলার কম্পোনেন্ট ইউজার ইন্টারঅ্যাকশন এবং পেজ রিকোয়েস্ট হ্যান্ডল করে। কন্ট্রোলার ক্লাসগুলি মূলত URL রাউটিং এবং রিকোয়েস্ট পরিচালনা করতে ব্যবহৃত হয়। যখন একটি ইউজার কোনো URL এ রিকোয়েস্ট পাঠায়, কন্ট্রোলার সেই রিকোয়েস্টটি প্রসেস করে এবং সঠিক অ্যাকশন/ভিউ প্রদর্শন করে।

  • কন্ট্রোলার ফোল্ডার: app/code/<Vendor>/<Module>/Controller
  • কন্ট্রোলার কাজ: ইউজারের রিকোয়েস্ট গ্রহণ এবং উপযুক্ত রেসপন্স প্রদান।

২. Model (মডেল)

Magento এর মডেল কম্পোনেন্ট ডেটা ম্যানিপুলেশন এবং সিস্টেমের ব্যবসায়িক লজিক প্রক্রিয়া করে। এটি ডাটাবেসের সাথে যোগাযোগ করে এবং ডেটা রিট্রিভ বা আপডেট করে। মডেল সাধারণত ডেটাবেসের রেকর্ডের জন্য কাজ করে।

  • মডেল ফোল্ডার: app/code/<Vendor>/<Module>/Model
  • মডেল কাজ: ডেটা ম্যানিপুলেশন এবং ব্যবসায়িক লজিক প্রসেসিং।

৩. View (ভিউ)

Magento এর ভিউ কম্পোনেন্ট ইউজারের জন্য ডেটা উপস্থাপন করে। এটি টেমপ্লেট ফাইল এবং ব্লক ক্লাসগুলির মাধ্যমে কন্ট্রোলার থেকে প্রাপ্ত ডেটা প্রদর্শন করে। ভিউ কম্পোনেন্ট ইউজার ইন্টারফেসের জন্য গুরুত্বপূর্ণ।

  • ভিউ ফোল্ডার: app/code/<Vendor>/<Module>/View
  • ভিউ কাজ: ডেটা উপস্থাপন এবং ইউজার ইন্টারফেস তৈরি করা।

৪. Block (ব্লক)

Magento ব্লক কম্পোনেন্ট ব্যবহারকারীর ভিউতে ডেটা প্রদর্শন করার জন্য ব্যবহৃত হয়। এটি মডেল থেকে ডেটা নিয়ে আসে এবং টেমপ্লেটে প্রেরণ করে।

  • ব্লক ফোল্ডার: app/code/<Vendor>/<Module>/Block
  • ব্লক কাজ: ডেটা সংগ্রহ এবং ভিউতে প্রদর্শন।

৫. Helper (হেলপার)

Magento হেলপার কম্পোনেন্ট সাধারণত পুনঃব্যবহারযোগ্য ফাংশন সরবরাহ করে, যা মডিউল বা অ্যাপ্লিকেশন জুড়ে ব্যবহৃত হতে পারে। এগুলি সাধারণত ইউটিলিটি কাজের জন্য ব্যবহৃত হয়, যেমন স্ট্রিং ম্যানিপুলেশন, ফাইল সিস্টেম ইন্টারঅ্যাকশন ইত্যাদি।

  • হেলপার ফোল্ডার: app/code/<Vendor>/<Module>/Helper
  • হেলপার কাজ: পুনঃব্যবহারযোগ্য ফাংশন প্রদান করা।

Magento মডিউল আর্কিটেকচারের সুবিধা

১. মডুলার ডিজাইন (Modular Design)

Magento এর মডুলার আর্কিটেকচার এর মাধ্যমে আপনি পৃথক পৃথক ফিচার এবং ফাংশনালিটি একে অপর থেকে আলাদা রাখতে পারেন। এটি ফিচার যুক্ত করতে বা পরিবর্তন করতে সাহায্য করে এবং সিস্টেমের স্থিতিশীলতা বজায় রাখে।

২. পুনঃব্যবহারযোগ্য কোড (Reusable Code)

মডিউল আর্কিটেকচারের মাধ্যমে কোড পুনঃব্যবহারযোগ্য হয়, যা ডেভেলপমেন্টের সময়সীমা কমায় এবং সিস্টেমের মেইনটেনেন্স সহজ করে।

৩. কাস্টমাইজেশন সুবিধা (Customization Flexibility)

মডিউল আর্কিটেকচার আপনাকে একটি মডিউল কাস্টমাইজ করতে বা নতুন মডিউল যোগ করতে সহায়ক, যা আপনার সিস্টেমের কার্যকারিতা বা ফিচার বাড়ানোর সুবিধা দেয়।


সারাংশ

Magento এর মডিউল এবং কম্পোনেন্ট আর্কিটেকচার একটি শক্তিশালী এবং কাস্টমাইজযোগ্য ফ্রেমওয়ার্ক সরবরাহ করে যা ব্যবসায়ীদের তাদের ই-কমার্স সাইটে প্রয়োজনীয় কার্যকারিতা যুক্ত করতে এবং সিস্টেমটি স্কেল করতে সহায়ক। এর মডুলার ডিজাইন এবং বিভিন্ন কম্পোনেন্ট (Controller, Model, View, Block, Helper) এর মাধ্যমে Magento সিস্টেমটি অত্যন্ত কার্যকরী এবং সহজে কাস্টমাইজযোগ্য হয়ে থাকে।

Content added By

Module তৈরি করা এবং কনফিগার করা

65
65

ম্যাজেন্টো ফ্রেমওয়ার্কে (Magento Framework) মডিউল তৈরি করা এবং কনফিগার করা একটি অত্যন্ত গুরুত্বপূর্ণ প্রক্রিয়া, যা আপনার ই-কমার্স সাইটের কার্যকারিতা এবং কাস্টম ফিচার যোগ করতে সাহায্য করে। মডিউলগুলি ম্যাজেন্টোর ফিচারগুলিকে বৃদ্ধি, কাস্টমাইজ এবং এক্সটেন্ড করার জন্য ব্যবহৃত হয়। এখানে আমরা ম্যাজেন্টোতে একটি কাস্টম মডিউল তৈরি এবং কনফিগার করার প্রক্রিয়া আলোচনা করব।


Magento-এ মডিউল তৈরি করা

ম্যাজেন্টোতে মডিউল তৈরি করার জন্য প্রথমে আপনাকে মডিউলের জন্য একটি ডিরেক্টরি তৈরি করতে হবে এবং তার পরবর্তী ফাইলগুলোর মাধ্যমে মডিউল কনফিগার করতে হবে।

১. মডিউলের ডিরেক্টরি তৈরি করা

Magento-তে একটি নতুন মডিউল তৈরি করতে আপনাকে app/code/[VendorName]/[ModuleName] ডিরেক্টরি তৈরি করতে হবে। এখানে [VendorName] আপনার কোম্পানি বা ডেভেলপার নাম এবং [ModuleName] আপনার মডিউলের নাম।

app/code/[VendorName]/[ModuleName]

উদাহরণস্বরূপ, একটি কাস্টম মডিউল তৈরি করতে:

app/code/Custom/HelloWorld

২. মডিউল কনফিগারেশন ফাইল তৈরি করা (module.xml)

প্রথমে আপনাকে একটি module.xml ফাইল তৈরি করতে হবে, যা ম্যাজেন্টোকে জানাবে যে এটি একটি বৈধ মডিউল। এই ফাইলটি app/code/[VendorName]/[ModuleName]/etc/ ডিরেক্টরিতে থাকবে।

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="[VendorName]_[ModuleName]" setup_version="1.0.0"/>
</config>

উদাহরণস্বরূপ, HelloWorld মডিউলের জন্য module.xml ফাইলটি হবে:

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="Custom_HelloWorld" setup_version="1.0.0"/>
</config>

৩. মডিউল রেজিস্ট্রেশন (registration.php)

Magento মডিউল রেজিস্টার করতে আপনাকে একটি registration.php ফাইল তৈরি করতে হবে, যা Magento কে জানাবে যে মডিউলটি সিস্টেমে রেজিস্টার করা হয়েছে। এই ফাইলটি app/code/[VendorName]/[ModuleName]/ ডিরেক্টরিতে থাকবে।

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    '[VendorName]_[ModuleName]',
    __DIR__
);

উদাহরণস্বরূপ, HelloWorld মডিউলের জন্য registration.php হবে:

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Custom_HelloWorld',
    __DIR__
);

৪. মডিউল সক্রিয় করা (Enable the Module)

মডিউল তৈরি করার পর আপনাকে এটি সক্রিয় করতে হবে। এর জন্য নিচের কমান্ড ব্যবহার করুন:

php bin/magento module:enable Custom_HelloWorld
php bin/magento setup:upgrade
php bin/magento cache:flush

৫. মডিউল ফিচার এবং কার্যকারিতা যোগ করা

এখন আপনি আপনার মডিউলে নতুন ফিচার এবং কার্যকারিতা যোগ করতে পারেন। উদাহরণস্বরূপ, একটি কাস্টম কন্ট্রোলার তৈরি করা।

Magento Module Configuration

Magento মডিউলে কনফিগারেশন এবং সেটিংস যোগ করতে হলে আপনাকে কিছু কনফিগারেশন ফাইল তৈরি করতে হবে যা etc ফোল্ডারে থাকবে। নিচে কিছু কনফিগারেশন ফাইলের উদাহরণ দেওয়া হলো।

১. system.xml ফাইল

আপনার মডিউলে কনফিগারেশন অপশনগুলির জন্য একটি system.xml ফাইল তৈরি করুন। এই ফাইলটি অ্যাডমিন প্যানেলে কনফিগারেশন সেটিংস যোগ করতে সাহায্য করে। এটি app/code/[VendorName]/[ModuleName]/etc/adminhtml/ ডিরেক্টরিতে থাকবে।

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/system_file.xsd">
    <system>
        <section id="custom_helloworld" translate="label">
            <label>Custom Hello World</label>
            <tab>general</tab>
            <resource>Magento_Config::config</resource>
            <group id="general" translate="label">
                <label>General Settings</label>
                <field id="enabled" translate="label" type="select" showInDefault="1" showInWebsite="1" showInStore="1">
                    <label>Enable</label>
                    <source_model>Magento\Config\Model\Config\Source\Yesno</source_model>
                    <default>1</default>
                </field>
            </group>
        </section>
    </system>
</config>

২. config.xml ফাইল

এই ফাইলটি আপনার মডিউলের কনফিগারেশন এবং কার্যকারিতা কন্ট্রোল করতে ব্যবহৃত হয়। এটি app/code/[VendorName]/[ModuleName]/etc/ ডিরেক্টরিতে থাকবে।

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/system_file.xsd">
    <default>
        <custom_helloworld>
            <enabled>1</enabled>
        </custom_helloworld>
    </default>
</config>

মডিউল পরীক্ষা করা (Test the Module)

আপনার তৈরি মডিউলটি ঠিকভাবে কাজ করছে কিনা তা পরীক্ষা করতে:

  1. Magento অ্যাডমিন প্যানেলে যান এবং আপনার মডিউলের কনফিগারেশন সেটিংস চেক করুন।
  2. php bin/magento কমান্ডের মাধ্যমে মডিউলটি সক্রিয়/অকার্যকর করুন এবং সিস্টেমের ইনফরমেশন দেখুন।

সারাংশ

Magento-তে মডিউল তৈরি এবং কনফিগার করা একটি শক্তিশালী এবং কাস্টমাইজেবল প্রক্রিয়া যা আপনার সাইটের কার্যকারিতা বাড়াতে সাহায্য করে। আপনি module.xml, registration.php, system.xml, এবং অন্যান্য কনফিগারেশন ফাইল ব্যবহার করে মডিউলটি তৈরি, কনফিগার এবং সক্রিয় করতে পারেন। এই প্রক্রিয়া অনুসরণ করে, আপনি Magento-এর ক্ষমতা আরও বৃদ্ধি করতে পারেন এবং আপনার ই-কমার্স সাইটে কাস্টম ফিচার এবং কার্যকারিতা যোগ করতে পারেন।

Content added By

Magento এর জন্য Custom Module তৈরি করা

92
92

ম্যাজেন্টো ফ্রেমওয়ার্ক (Magento Framework) একটি মডুলার আর্কিটেকচার ব্যবহার করে, যেখানে ফিচারগুলো ছোট, পুনঃব্যবহারযোগ্য এবং নির্দিষ্ট কাজ সম্পাদনের জন্য আলাদা মডিউল আকারে থাকে। Magento এর মডিউল আর্কিটেকচার এবং কম্পোনেন্টগুলি অত্যন্ত কাস্টমাইজযোগ্য এবং স্কেলেবল, যা আপনাকে প্রয়োজনীয় ফিচার এবং ফাংশনালিটি যোগ করার অনুমতি দেয়।

এখানে আমরা আলোচনা করব কিভাবে ম্যাজেন্টোতে একটি কাস্টম মডিউল তৈরি করতে হয়।


Magento তে Custom Module তৈরি করার পদক্ষেপ

Magento 2 তে কাস্টম মডিউল তৈরি করার জন্য কয়েকটি নির্দিষ্ট ধাপ অনুসরণ করতে হয়। নিচে ধাপে ধাপে প্রক্রিয়াটি দেওয়া হলো:


১. মডিউলের ডিরেক্টরি তৈরি করা

প্রথমে, Magento 2 মডিউলের জন্য ডিরেক্টরি তৈরি করুন। Magento তে মডিউলগুলি সাধারণত app/code ডিরেক্টরিতে থাকে।

app/code/[VendorName]/[ModuleName]

এখানে, [VendorName] হলো আপনার কোম্পানি বা ডেভেলপারের নাম এবং [ModuleName] হলো মডিউলের নাম। উদাহরণস্বরূপ, যদি আপনি একটি মডিউল তৈরি করতে চান যার নাম "HelloWorld", তবে আপনি ডিরেক্টরি তৈরি করবেন:

app/code/YourVendor/HelloWorld

২. Module XML ফাইল তৈরি করা

Magento 2 এ মডিউলকে সিস্টেমে রেজিস্টার করতে module.xml ফাইল তৈরি করতে হয়। এটি মডিউলের বেস কনফিগারেশন এবং ডিপেনডেন্সি নির্দেশ করে।

app/code/[VendorName]/[ModuleName]/etc/module.xml ফাইলটি তৈরি করুন এবং নিচের কোডটি যোগ করুন:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="[VendorName]_[ModuleName]" setup_version="1.0.0">
    </module>
</config>

এখানে, [VendorName] এবং [ModuleName] আপনার কাস্টম নাম দিয়ে প্রতিস্থাপন করুন।


৩. ডাটাবেস সেটআপ (অপশনাল)

যদি আপনার মডিউলে ডাটাবেস টেবিল যুক্ত করতে চান, তাহলে আপনাকে একটি InstallSchema.php অথবা UpgradeSchema.php ফাইল তৈরি করতে হবে। এই ফাইলটি ডাটাবেস টেবিল তৈরি এবং আপগ্রেড করার জন্য ব্যবহৃত হয়।

app/code/[VendorName]/[ModuleName]/Setup/InstallSchema.php ফাইল তৈরি করুন এবং নিচের কোডটি ব্যবহার করুন:

<?php
namespace [VendorName]\[ModuleName]\Setup;

use Magento\Framework\Setup\InstallSchemaInterface;
use Magento\Framework\Setup\SchemaSetupInterface;
use Magento\Framework\Setup\ModuleContextInterface;

class InstallSchema implements InstallSchemaInterface
{
    public function install(SchemaSetupInterface $setup, ModuleContextInterface $context)
    {
        $installer = $setup;
        $installer->startSetup();

        // টেবিল তৈরি করার কোড
        if (!$installer->tableExists('your_table_name')) {
            $table = $installer->getConnection()->newTable(
                $installer->getTable('your_table_name')
            )
            ->addColumn(
                'entity_id',
                \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
                null,
                ['identity' => true, 'nullable' => false, 'primary' => true, 'unsigned' => true],
                'Entity ID'
            )
            ->addColumn(
                'name',
                \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
                255,
                ['nullable' => false],
                'Name'
            )
            ->setComment('Your Custom Table');
            $installer->getConnection()->createTable($table);
        }

        $installer->endSetup();
    }
}

৪. Controller তৈরি করা

Magento মডিউলে একটি Controller তৈরি করে ইউজার ইন্টারফেস থেকে ডাটা হ্যান্ডেল এবং প্রক্রিয়া করতে পারেন। এখানে একটি HelloWorldController.php উদাহরণ দেওয়া হলো:

app/code/[VendorName]/[ModuleName]/Controller/Index/Index.php ফাইল তৈরি করুন এবং নিচের কোডটি যোগ করুন:

<?php
namespace [VendorName]\[ModuleName]\Controller\Index;

use Magento\Framework\App\Action\Action;
use Magento\Framework\App\Action\Context;

class Index extends Action
{
    protected $resultPageFactory;

    public function __construct(
        Context $context,
        \Magento\Framework\View\Result\PageFactory $resultPageFactory
    ) {
        $this->resultPageFactory = $resultPageFactory;
        parent::__construct($context);
    }

    public function execute()
    {
        return $this->resultPageFactory->create();
    }
}

এটি একটি পেজ রিটার্ন করবে যেটি আপনার মডিউলের ইনডেক্স অ্যাকশন থেকে তৈরি হবে।


৫. রাউটিং কনফিগারেশন

Magento রাউটিং কনফিগারেশন XML ফাইলের মাধ্যমে মডিউল একশন এবং ইউআরএল ম্যানেজ করে। এই ফাইলটি app/code/[VendorName]/[ModuleName]/etc/frontend/routes.xml এ সংরক্ষণ করুন।

<?xml version="1.0" encoding="UTF-8"?>
<router id="standard">
    <route id="[modulename]" frontName="hello">
        <module name="[VendorName]_[ModuleName]"/>
    </route>
</router>

এখানে [modulename] এবং [VendorName]_[ModuleName] আপনার কাস্টম নাম দিয়ে প্রতিস্থাপন করুন।

এটি সাইটে yourdomain.com/hello/index/index এ আপনার কাস্টম পেজ প্রদর্শন করবে।


৬. মডিউল সক্রিয় করা

Magento এ নতুন মডিউল সক্রিয় করতে আপনি নিম্নলিখিত কমান্ড ব্যবহার করতে পারেন:

php bin/magento module:enable [VendorName]_[ModuleName]
php bin/magento setup:upgrade
php bin/magento cache:flush

৭. মডিউল ডেভেলপমেন্ট এবং টেস্টিং

এখন আপনি আপনার মডিউল টেস্ট করতে পারবেন। ব্রাউজারে গিয়ে আপনার মডিউল পেজ পরীক্ষা করুন (যেমন, yourdomain.com/hello)। যদি সবকিছু সঠিকভাবে কাজ করে, তবে আপনার কাস্টম মডিউল সফলভাবে তৈরি হয়েছে।


সারাংশ

Magento তে কাস্টম মডিউল তৈরি করার মাধ্যমে আপনি ই-কমার্স সাইটে নতুন ফিচার এবং ফাংশনালিটি যোগ করতে পারেন। এটি একটি অত্যন্ত কার্যকরী উপায় Magento এর শক্তিশালী কাস্টমাইজেশন এবং এক্সটেনশন সিস্টেম ব্যবহার করতে। মডিউল তৈরি করার প্রক্রিয়া বেশ সহজ এবং স্কেলেবল, এবং এটি Magento এর মডুলার আর্কিটেকচারের সুবিধা প্রদান করে।

Content added By

মডিউল এর ইনস্টলেশন এবং Activation

61
61

ম্যাজেন্টো ফ্রেমওয়ার্ক (Magento Framework) একটি মডুলার আর্কিটেকচার ব্যবহার করে, যার মাধ্যমে আপনি সহজেই নতুন ফিচার যোগ করতে পারেন। মডিউল আর্কিটেকচার আপনাকে থিম, কনফিগারেশন, ফাংশনালিটি এবং অন্যান্য মৌলিক কম্পোনেন্ট যোগ করার সুযোগ দেয়। Magento এর মডিউল ইনস্টল এবং একটিভেশন প্রক্রিয়া কিছুটা নির্দিষ্ট এবং স্পষ্ট ধাপে সম্পন্ন করা হয়।

এখানে Magento এর মডিউল ইনস্টলেশন এবং একটিভেশন পদ্ধতি বিস্তারিতভাবে আলোচনা করা হল।


Magento মডিউল ইনস্টলেশন এবং একটিভেশন পদ্ধতি

১. মডিউল ইনস্টলেশন পদ্ধতি

ম্যাজেন্টোতে মডিউল ইনস্টল করার বেশ কয়েকটি পদ্ধতি রয়েছে। এর মধ্যে কমন পদ্ধতি হলো Composer ব্যবহার করে মডিউল ইনস্টল করা, ম্যানুয়ালি ফাইল আপলোড করা এবং ম্যাগেন্টো মডিউল রিপোজিটরি থেকে মডিউল ইনস্টল করা।

Composer ব্যবহার করে মডিউল ইনস্টল

Composer ব্যবহার করে Magento-তে মডিউল ইনস্টল করা সবচেয়ে সহজ এবং জনপ্রিয় পদ্ধতি। যদি মডিউলটি Composer মাধ্যমে উপলব্ধ থাকে, তাহলে আপনি এটি কমান্ড লাইনের মাধ্যমে ইনস্টল করতে পারবেন।

উদাহরণ:

composer require vendor/module-name

এখানে vendor/module-name হলো আপনার ইনস্টল করতে চাওয়া মডিউলের প্যাকেজ নাম।

ম্যানুয়ালি মডিউল ইনস্টল

যদি মডিউলটি কম্পোজার রেপোজিটরিতে উপলব্ধ না থাকে, তাহলে আপনি মডিউলটি ম্যানুয়ালি ডাউনলোড এবং ইনস্টল করতে পারেন।

ধাপসমূহ:

  1. প্রথমে মডিউলটির ZIP ফাইল ডাউনলোড করুন অথবা GitHub থেকে মডিউলটি ক্লোন করুন।
  2. ডাউনলোড বা ক্লোন করা ফাইলটি আপনার Magento ইনস্টলেশন ডিরেক্টরির app/code/ ফোল্ডারে আপলোড করুন।
  3. app/code/ ফোল্ডারের মধ্যে মডিউলের একটি নতুন ফোল্ডার তৈরি করুন (যেমন: Vendor/ModuleName) এবং মডিউলটির ফাইলগুলো সেখানে পেস্ট করুন।
Magento Marketplace থেকে মডিউল ইনস্টল

Magento Marketplace থেকে মডিউল কেনার পর, আপনি মডিউলের প্যাকেজ ডাউনলোড করতে পারেন এবং Composer ব্যবহার করে সেটি ইনস্টল করতে পারেন।

composer require vendor/module-name --no-update
composer update

২. মডিউল একটিভেশন

মডিউল ইনস্টল করার পর, আপনাকে সেটি Magento সিস্টেমে একটিভেট করতে হবে। Magento এর মডিউল একটিভেট করতে কমান্ড লাইন ব্যবহার করা হয়।

ধাপসমূহ:

  1. মডিউল তালিকা চেক করুন: মডিউল ইনস্টল করার পর, আপনাকে নিশ্চিত হতে হবে যে সেটি সঠিকভাবে ইনস্টল হয়েছে। এজন্য নিচের কমান্ডটি ব্যবহার করুন:

    php bin/magento module:status
    

    এই কমান্ডটি সমস্ত মডিউলের তালিকা দেখাবে এবং আপনি দেখতে পাবেন কোন মডিউলটি একটিভ এবং কোনটি ইনঅ্যাকটিভ।

  2. মডিউল একটিভেশন: মডিউলটি একটিভ করার জন্য নিচের কমান্ডটি ব্যবহার করুন:

    php bin/magento module:enable Vendor_ModuleName
    

    এখানে Vendor_ModuleName হল আপনার মডিউলের নাম (যেমন: Magento_Catalog বা Vendor_Module ইত্যাদি)।

  3. কনফিগারেশন ক্যাশ ফ্লাশ করুন: মডিউল একটিভেশন করার পর, Magento ক্যাশ ফ্লাশ করা জরুরি। এটি সিস্টেমের ক্যাশ সাফ করে এবং নতুন মডিউল লোড করতে সাহায্য করে।

    ক্যাশ ফ্লাশ করার জন্য নিচের কমান্ডটি ব্যবহার করুন:

    php bin/magento cache:flush
    
  4. ডাটাবেস আপডেট: যদি মডিউল ডাটাবেস টেবিলের পরিবর্তন বা স্কিমা আপডেট করে থাকে, তাহলে আপনাকে ডাটাবেস আপডেট করতে হবে। এজন্য নিচের কমান্ডটি ব্যবহার করুন:

    php bin/magento setup:upgrade
    
  5. স্ট্যাটিক ফাইল ডিপ্লয় (Optional): যদি মডিউলটি স্ট্যাটিক ফাইল (যেমন CSS, JS ফাইল) আপডেট করে থাকে, তবে স্ট্যাটিক ফাইল পুনরায় ডিপ্লয় করা দরকার। এর জন্য নিচের কমান্ডটি ব্যবহার করুন:

    php bin/magento setup:static-content:deploy
    

৩. মডিউল নিষ্ক্রিয়করণ

যদি কোনো মডিউল নিষ্ক্রিয় করতে চান, তাহলে আপনি নিচের কমান্ডটি ব্যবহার করতে পারেন:

php bin/magento module:disable Vendor_ModuleName

এটি মডিউলটিকে নিষ্ক্রিয় করবে এবং আপনি যদি চান, তবে পরবর্তীতে এটি আবার একটিভ করতে পারবেন।


৪. সিস্টেম রি-স্টার্ট এবং ফ্রন্টএন্ড চেক

সবশেষে, মডিউল ইনস্টল এবং একটিভেশন সম্পন্ন হওয়ার পর, আপনাকে আপনার সাইটের ফ্রন্টএন্ডে গিয়ে নিশ্চিত হতে হবে যে মডিউলটি সঠিকভাবে কাজ করছে। এছাড়া, অ্যাডমিন প্যানেলে নতুন মডিউল সম্পর্কিত কনফিগারেশন সেটিংস চেক করুন।


সারাংশ

Magento মডিউল ইনস্টলেশন এবং একটিভেশন একটি সহজ প্রক্রিয়া, তবে এটি সঠিকভাবে কাজ করার জন্য কিছু নির্দিষ্ট ধাপ অনুসরণ করা প্রয়োজন। Composer এর মাধ্যমে মডিউল ইনস্টল করা, মডিউল একটিভেট করা, ক্যাশ ফ্লাশ করা এবং ডাটাবেস আপডেট করা নিশ্চিত করবে যে মডিউলটি সঠিকভাবে আপনার সাইটে কাজ করছে।

Content added By
Promotion